home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2005 June / PCpro_2005_06.ISO / files / opensource / amc / amc_install.exe / {app} / Scripts / Cinedvd (Br).ifs < prev    next >
Encoding:
Text File  |  2005-03-13  |  6.0 KB  |  190 lines

  1. (***************************************************
  2.  
  3. Ant Movie Catalog importation script
  4. www.antp.be/software/moviecatalog/
  5.  
  6. [Infos]
  7. Authors=O Guardiπo (<link>bruno_mga@hotmail.com</link>)
  8. Title=Cinedvd
  9. Description=Movie importation script for cinedvd.com.br
  10. Site=www.cinedvd.com.br
  11. Language=PT
  12. Version=1.0 - 25 Fevereiro 2005
  13. Requires=3.5.0
  14. Comments=Script feito por O Guardiπo (www.guardiao.pt.vu) para o site "www.cinedvd.com.br" |
  15. License=This program is free software; you can redistribute it and/or modify it under the  terms of the GNU General Public License as published by the Free Software Foundation;  either version 2 of the License, or (at your option) any later version. |
  16. GetInfo=1
  17.  
  18. [Options]
  19.  
  20. ***************************************************)
  21.  
  22. program Vervideo;
  23. uses StringUtils1;
  24. var
  25.   MovieName, MovieURL: string;
  26.   LineNr, BeginPos, EndPos: Integer;
  27.  
  28. procedure AnalyzeFilmPage(mode:integer;Address: String);
  29. var
  30.   Page : TStringList;
  31.   Value,value2 : string;
  32. begin
  33.   Page := TStringList.Create;
  34. if mode=0 then
  35. begin
  36.   Page.Text := GetPage(Address);
  37.   SetField(fieldURL, Address);
  38. end
  39. else
  40. begin
  41.   Page.Text:=Address;
  42.   BeginPos:=Pos('<a href="filme.asp?sAcao=SOM&nIdFilme=',Page.Text)+38;
  43.   value:=Copy(Page.Text,BeginPos,Length(Page.Text));
  44.   EndPos:=Pos('">',value);
  45.   value:=Copy(value,1,EndPos-1);
  46.   value:='http://www.cinedvd.com.br/Filme.asp?sAcao=CONSULTA&nIdFilme='+value;
  47.   SetField(fieldURL, value);
  48. end;
  49.     LineNr := FindLine('<td width="11">   </td>', Page, 0)+2;
  50.     value := Page.GetString(LineNr);
  51.     HTMLRemoveTags(value);
  52.     HTMLDecode(value);
  53.     value:=StringReplace(value,'           ','');
  54.     SetField(fieldTranslatedTitle, value);
  55.     
  56.     LineNr := FindLine('<td class="cabAzul" colspan="5">',Page,0);
  57.     value := Page.GetString(LineNr);
  58.     HTMLRemoveTags(value);
  59.     HTMLDecode(value);
  60.     value:=StringReplace(value,'            ','');
  61.     SetField(fieldOriginalTitle, value);
  62.     
  63.     LineNr := FindLine('">Ano Produτπo</td>',Page,0)+5;
  64.     value := Page.GetString(LineNr);
  65.     HTMLRemoveTags(value);
  66.     HTMLDecode(value);
  67.     SetField(fieldYear, value);
  68.  
  69.     LineNr := FindLine('">Paφs Origem</td>', Page, 0)+5;
  70.     value := Page.GetString(LineNr);
  71.     HTMLRemoveTags(value);
  72.     HTMLDecode(value);
  73.     value:=StringReplace(value,'                ','');
  74.     SetField(fieldCountry, value);
  75.  
  76.     LineNr := FindLine('">GΩnero</td>', Page, 0)+4;
  77.     value := Page.GetString(LineNr);
  78.     HTMLRemoveTags(value);
  79.     HTMLDecode(value);
  80.     SetField(fieldCategory, value);
  81.  
  82.     LineNr := FindLine('">Diretor</td>', Page, 0)+7;
  83.     value := Page.GetString(LineNr);
  84.     HTMLRemoveTags(value);
  85.     HTMLDecode(value);
  86.     SetField(fieldDirector, value);
  87.  
  88.     value := Page.text;
  89.     BeginPos := Pos('<td rowspan="3" class="detNormal" valign="top">', value)+60;
  90.     value:=Copy(value,BeginPos,Length(value));
  91.     EndPos := pos('</td>',value);
  92.     value:=Copy(value,1,EndPos-1);
  93.     value:=StringReplace(value,'<br>',', ');
  94.     HTMLRemoveTags(value);
  95.     HTMLDecode(value);
  96.     value:=StringReplace(value,'  ','');
  97.     value:=Copy(value,1,Length(value)-6);
  98.     value:=StringReplace(value,#13#10,'');
  99.     SetField(fieldActors, value);
  100.       
  101.     LineNr := FindLine('">Sinopse</td>', Page, 0)+4;
  102.     value := Page.GetString(LineNr);
  103.     HTMLRemoveTags(value);
  104.     HTMLDecode(value);
  105.     value:=StringReplace(value,'                  ','');
  106.     SetField(fieldDescription, value);
  107.  
  108.     LineNr := FindLine('">Duraτπo</td>', Page, 0)+5;
  109.     value := Page.GetString(LineNr);
  110.     HTMLRemoveTags(value);
  111.     HTMLDecode(value);
  112.     value:=StringReplace(value,' min','');
  113.     SetField(fieldLength, value);
  114.  
  115.     LineNr := FindLine('">Distribuidora</td>', Page, 0)+5;
  116.     value := Page.GetString(LineNr);
  117.     HTMLRemoveTags(value);
  118.     HTMLDecode(value);
  119.     value:=StringReplace(value,'                ','');
  120.     SetField(fieldProducer, value);
  121.       
  122.     LineNr := FindLine('" vspace="10" hspace="0">', Page, 0);
  123.     value := Page.GetString(LineNr);
  124.     BeginPos:=Pos('<img src="',value)+10;
  125.     EndPos:=Pos('" vspace="10" hspace="0">',value);
  126.     value:=Copy(value,BeginPos,EndPos-BeginPos);
  127.     value:='http://www.cinedvd.com.br/'+value;
  128.     GetPicture(Value);
  129. end;
  130.  
  131. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  132. var
  133.   i: Integer;
  134. begin
  135.   result := -1;
  136.   if StartAt < 0 then
  137.     StartAt := 0;
  138.   for i := StartAt to List.Count-1 do
  139.     if Pos(Pattern, List.GetString(i)) <> 0 then
  140.     begin
  141.       result := i;
  142.       Break;
  143.     end;
  144. end;
  145.  
  146. procedure AnalyzePage(Address: string);
  147. var
  148.   Page: TStringList;
  149.   x:integer;
  150.   MovieAddress, findMovieName,linedown : string;
  151.   guardar, nome_filme:string;
  152. begin
  153.   PickTreeClear;
  154.   Page := TStringList.Create;
  155.   Page.Text :=(GetPage(Address));
  156.  
  157.  
  158. if Pos('<td class="detNormal" colspan="3">',Page.Text)=0 then
  159. begin
  160.   repeat
  161.         BeginPos:=Pos('<a href="javascript:funShowFilme(',Page.Text)+33;
  162.         Page.Text:=Copy(Page.Text,BeginPos,Length(Page.Text));
  163.         EndPos:=Pos(')">',Page.Text)-2;
  164.         MovieURL:='http://www.cinedvd.com.br/Filme.asp?sAcao=CONSULTA&nIdFilme='+Copy(Page.Text,1,EndPos-1);
  165.         BeginPos:=Pos('<td class="detAzulPeq" colspan="2">',Page.Text);
  166.         Page.Text:=Copy(Page.Text,BeginPos,Length(Page.Text));
  167.         EndPos:=Pos('</td>',Page.Text);
  168.         nome_filme:=Copy(Page.Text,1,EndPos-1);
  169.         HTMLRemoveTags(nome_filme);
  170.         HTMLDecode(nome_filme);
  171.         PickTreeAdd(nome_filme, MovieURL);
  172.    until (Pos('<a href="javascript:funShowFilme(', Page.Text)=0);
  173.     if PickTreeExec(Address) then
  174.       AnalyzeFilmPage(0,Address);
  175. end
  176. else
  177.       AnalyzeFilmPage(1,Page.text);
  178.     Page.Free;
  179. end;
  180.  
  181. begin
  182.   MovieName := GetField(fieldOriginalTitle);
  183.   if Input('Importar do Vervideo', 'Escreva o nome do filme:', MovieName) then
  184.   begin
  185.     MovieName:=StringReplace(MovieName,' ','+');
  186.     AnalyzePage('http://www.cinedvd.com.br/FilmeLista.asp?sAcao=CONSULTA&sBusca='+MovieName);
  187.   end;
  188. end.
  189.  
  190.